package com.tanhua.dubbo.server.api;

import com.tanhua.dubbo.server.pojo.UserLike;
import com.tanhua.dubbo.server.vo.PageInfo;

import java.util.List;

public interface UserLikeApi {

    /**
     * 喜欢
     *
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean likeUser(Long userId, Long likeUserId);

    /**
     * 不喜欢
     *
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean notLikeUser(Long userId, Long likeUserId);

    /**
     * 是否相互喜欢
     *
     * @param userId
     * @param likeUserId
     * @return
     */
    Boolean isMutualLike(Long userId, Long likeUserId);

    /**
     * 查询喜欢列表
     *
     * @param userId
     * @return
     */
    List<Long> queryLikeList(Long userId);

    /**
     * 查询不喜欢列表
     *
     * @param userId
     * @return
     */
    List<Long> queryNotLikeList(Long userId);

    /**
     * 互相关注
     *
     * @param userId  登录者id
     * @return  条数
     */
    Long queryMutualLikeCount (Long userId);

    /**
     * 关注
     *
     * @param userId  登录者id
     * @return  条数
     */
    Long queryLikeCount (Long userId);

    /**
     * 粉丝
     *
     * @param userId  登录者id
     * @return  条数
     */
    Long queryFanCount (Long userId);

    /**
     * 查询相互喜欢列表
     *
     * @param userId  登录者id
     * @param page  页数
     * @param pageSize  每页显示的条数
     * @return
     */
    PageInfo<UserLike> queryMutualLikeList(Long userId, Integer page, Integer pageSize);

    /**
     * 查询我喜欢的列表
     *
     * @param userId  登录者id
     * @param page  页数
     * @param pageSize  每页显示的条数
     * @return
     */
    PageInfo<UserLike> queryLikeList(Long userId, Integer page, Integer pageSize);

    /**
     * 查询粉丝列表
     *
     * @param userId  登录者id
     * @param page  页数
     * @param pageSize  每页显示的条数
     * @return
     */
    PageInfo<UserLike> queryFanList(Long userId, Integer page, Integer pageSize);

    Boolean isLike(Long userId, Long likeUserId);

}